A conventional computer system includes a computer having a memory, a processor and other hardware. Typically, an executable operating system program is stored in the memory which, when executed by the processor, controls operation of the computer system. During execution, the executable operating system program utilizes various features of the processor and other hardware. When testing new or modified hardware or a new or modified operating system, it is essential that many of these hardware features can be enabled or disabled by the testing computer scientist or engineer (user). This selection allows for different testing scenarios to be attempted and for problems to be isolated to specific areas of hardware or software.
Conventionally, the selection of hardware features has required the cumbersome process of modifying and recompiling the operating system source program. The operating system source program is read into memory from a peripheral or remote storage device, such as a hard disk. The user searches for and locates hardware parameters in the operating system source program. These hardware parameters determine whether the executable operating system program enables or disables corresponding hardware features during execution. The user selectively defines the hardware parameters as desired. The user then recompiles the source program to produce a new and different executable operating system program which replaces the previous executable operating system program and which, when executed, enables and disables the hardware features selectively defined by the user.
The cumbersome process described above has to be undertaken each time the user desires to enable or disable different hardware features. In testing the hardware or operating system, it is not uncommon for the user to begin with most or all hardware features disabled, and then to enable the hardware features one or two at a time until a large number of features are enabled. As a result, a great deal of time, effort and resources are expended during the testing process. Further, modifying the operating system source program introduces the risk of creating errors in the source program. Thus, a more accurate and efficient means is needed for selectively enabling and disabling hardware features in a computer system.